package objetos.armas;

import objetos.ObjetoMovil;
import objetos.proyectiles.Proyectil;
import org.jdom.Element;

/*
 * Clase que modela las caracter�sticas b�sicas de las armas. Cada arma diferente
 * debe heredar de esta clase y redefinir su comportamiento espec�fico. 
 */
public abstract class Arma {
	private int balas;
	private ObjetoMovil base;

	public Arma(ObjetoMovil base, int balas) {
		this.setBalas(balas);
		this.setBase(base);
	}

	public abstract Proyectil disparar();

	public boolean puedeDisparar() {
		return this.getBalas() > 0;
	}

	public void recargar(int balas) {
		this.setBalas(this.getBalas() + balas);
	}

	public void setBalas(int balas) {
		this.balas = balas;
	}

	public int getBalas() {
		return balas;
	}

	public void setBase(ObjetoMovil base) {
		this.base = base;
	}

	public ObjetoMovil getBase() {
		return base;
	}

	public abstract Element obtenerNodo();

	public Arma(Element nodo) {
	}

}
